package com.trt.contentcenter;

import com.alibaba.cloud.sentinel.annotation.SentinelRestTemplate;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.cloud.stream.annotation.EnableBinding;
import org.springframework.cloud.stream.messaging.Source;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
import tk.mybatis.spring.annotation.MapperScan;

import java.util.Collections;

@MapperScan("com.trt.contentcenter.dao") //扫描mybatis哪些包里面的接口
@SpringBootApplication
//@EnableFeignClients(defaultConfiguration = GlobalFeignConfiguration.class)
@EnableFeignClients
//@EnableBinding({Source.class, MySource.class})
@EnableBinding(Source.class)
public class ContentCenterApplication {

    public static void main(String[] args) {
        SpringApplication.run(ContentCenterApplication.class);
    }

    // 在spring容器中,创建一个对象,类型RestTemplate;名称/IDs是:restTemplate
//    @Bean
//    @LoadBalanced //Ribbon的负载均衡注解
//    @SentinelRestTemplate // RestTemplate整合Sentinel
//    public RestTemplate restTemplate(){
//        return new RestTemplate();
//    }

    // 需要配置
    @Bean
    @LoadBalanced //Ribbon的负载均衡注解
    @SentinelRestTemplate // RestTemplate整合Sentinel
    public RestTemplate restTemplate(){
        RestTemplate template = new RestTemplate();
        template.setInterceptors(
                Collections.singletonList(
                        new TestRestTemplateTokenRelayInterceptor()
                )
        );
        return template;
    }

}
